﻿namespace SugarTank.Mobile.CommonTypes.Phone
{
    using System.Collections.Generic;

    public class Email
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="Email"/> class.
        /// </summary>
        /// <param name="to">To.</param>
        /// <param name="body">The body.</param>
        /// <param name="subject">The subject.</param>
        public Email(string to, string subject, string body)
        {
            To = new List<string> {to};
            Body = body;
            Subject = subject;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="Email"/> class.
        /// </summary>
        /// <param name="to">To.</param>
        /// <param name="cc">The cc.</param>
        /// <param name="body">The body.</param>
        /// <param name="subject">The subject.</param>
        public Email(IEnumerable<string> to, IEnumerable<string> cc, string subject, string body)
        {
            To = to;
            Cc = cc;
            Body = body;
            Subject = subject;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="Email"/> class.
        /// </summary>
        /// <param name="to">To.</param>
        /// <param name="cc">The cc.</param>
        /// <param name="body">The body.</param>
        /// <param name="subject">The subject.</param>
        public Email(string to, string cc, string subject, string body)
        {
            To = new List<string> {to};
            Cc = new List<string> {cc};
            Body = body;
            Subject = subject;
        }

        /// <summary>
        /// Gets or sets who to send the email.
        /// </summary>
        /// <value>The to email address.</value>
        public IEnumerable<string> To { get; private set; }

        /// <summary>
        /// Gets or sets who to send the email.
        /// </summary>
        /// <value>The to email address.</value>
        public IEnumerable<string> Cc { get; private set; }

        /// <summary>
        /// Gets or sets the body.
        /// </summary>
        /// <value>The body.</value>
        public string Body { get; private set; }

        /// <summary>
        /// Gets or sets the body.
        /// </summary>
        /// <value>The body.</value>
        public string Subject { get; private set; }
    }
}